In a storage area network having multiple host devices and a storage array, an input/output (I/O) stack layer, such as a disk driver, may be a computer program which allows one or more workloads or applications accessing a host device to interact with a disk in the disk array. The I/O stack layer may communicate with the disk through a computer bus or communications subsystem to which the disk is connected. When a workload invokes one or more I/O requests to the disk, the I/O stack layer may issue respective commands to the disk. Once the disk sends a response back to the I/O stack layer reacting to one of the I/O requests, the I/O stack layer may invoke routines in the workload, thus relinquishing control back to the workload
The disk may be also equipped with a queue or queues to deal with multiple I/O requests issued by the I/O stack layer of the host device as well as corresponding I/O stack layers of other host devices in the storage area network. On the host side, a number of I/O requests concurrently being issued by the I/O stack layer may be limited by a maximum queue depth, where the maximum queue depth may refer to a maximum number of I/O requests or commands which can be concurrently issued by the I/O stack layer. At each queue of the disk, the multiple I/O requests from the host device may wait to be serviced by the disk.
Therefore, if the maximum queue depth set in the host device is too small, the I/O stack layer may issue too few I/O requests at a time, thus resulting in lower throughput and inefficient usage of the disk. On the other hand, if the maximum queue depth is too large for the disk to handle, it may slow down the disk servicing the I/O requests. Furthermore, if one of the multiple workloads hosted by the host device causes a “queue full” condition at the disk, it may prevent the host device from issuing an additional I/O request from other workloads hosted by the host device until the queue full condition is cleared. This may significantly reduce the I/O throughput of the storage area network.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follow.